`timescale 1ns / 1ps
/////////////////////////////////////////////////////////////////////////////
////                                                                     ////
//// Instituto Tecnologico de Costa Rica                                 ////
////                                                                     ////
//// Test Bench Maquina estados finitos                                  ////
////                                                                     ////
//// Este archivo es parte del proyecto: Control de luces de semaforo    ////
//// http://repositorio-charmander.googlecode.com/svn/trunk/             ////
////                                                                     ////
//// Descripcion                                                         ////
//// Implementacion de un control de luces de semaforo como un proyecto  ////
//// del curso de Taller de Diseño Logico.                               ////
////                                                                     ////
//// Funcionamiento:                                                     ////
//// - Modulo de test bench de la maquina estados finitos                ////
////                                                                     ////
////                                                                     ////                                    
//// Autores:                                                            ////
//// - Gia Chen, kathya0812@gmail.com                                    ////
////   Edgar Rojas, edtec217@gmail.com                                   ////
////                                                                     ////
/////////////////////////////////////////////////////////////////////////////

module MaquinaEstadosFinitos_tb;

	// Inputs
	reg _clk_i;
	reg sensor_sync_i;
	reg Walk_Request_i;
	reg prog_sync_i;
	reg expired_i;
	reg _sync_rst_i;

	// Outputs
	wire Rm_o;
	wire Ym_o;
	wire Gm_o;
	wire Rs_o;
	wire Ys_o;
	wire Gs_o;
	wire walk_o;
	wire start_timer_o;
	wire [1:0] interval_o;
	wire _WR_rst_o;

	// Instantiate the Unit Under Test (UUT)
	MaquinaEstadosFinitos uut (
		._clk_i(_clk_i), 
		.sensor_sync_i(sensor_sync_i), 
		.Walk_Request_i(Walk_Request_i), 
		.prog_sync_i(prog_sync_i), 
		.expired_i(expired_i), 
		._sync_rst_i(_sync_rst_i), 
		.Rm_o(Rm_o), 
		.Ym_o(Ym_o), 
		.Gm_o(Gm_o), 
		.Rs_o(Rs_o), 
		.Ys_o(Ys_o), 
		.Gs_o(Gs_o), 
		.walk_o(walk_o), 
		.start_timer_o(start_timer_o), 
		.interval_o(interval_o), 
		._WR_rst_o(_WR_rst_o)
	);


	//Instanciacion del clock
	initial begin
	_clk_i = 0;
	forever begin
	_clk_i = ~_clk_i;
	#10;
	end
	end
	
	initial begin
		// Initialize Inputs
		_clk_i = 0;
		sensor_sync_i = 0;
		Walk_Request_i = 0;
		prog_sync_i = 0;
		expired_i = 0;
		_sync_rst_i = 0;

		// Wait 100 ns for global reset to finish
		#100;
        
		// Add stimulus here
		#150;
		expired_i = 1;

	end
      
endmodule

